HAL I2S io operation functions migration

This section provides information about the HAL I2S function migration.

HAL I2S full duplex in polling mode

HAL1

HAL2

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive(I2S_HandleTypeDef *hi2s,
                                            const uint16_t *pTxData,
                                            uint16_t *pRxData,
                                            uint16_t Size, uint32_t Timeout);
hal_status_t HAL_I2S_TransmitReceive(hal_i2s_handle_t *hi2s,
                                     const void *p_tx_data,
                                     void *p_rx_data,
                                     uint32_t transfer_size,
                                     uint32_t timeout_ms);

Related use case: Use case: I2S full duplex Tx/Rx in polling mode


HAL I2S full duplex in DMA mode

HAL1

HAL2

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA(I2S_HandleTypeDef *hi2s,
                                                const uint16_t *pTxData,
                                                uint16_t *pRxData,
                                                uint16_t Size);
hal_status_t HAL_I2S_TransmitReceive_DMA(hal_i2s_handle_t *hi2s,
                                         const void *p_tx_data,
                                         void *p_rx_data,
                                         uint32_t transfer_size);

HAL I2S full duplex in interrupt mode

HAL1

HAL2

HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT(I2S_HandleTypeDef *hi2s,
                                               const uint16_t *pTxData,
                                               uint16_t *pRxData,
                                               uint16_t Size);
hal_status_t HAL_I2S_TransmitReceive_IT(hal_i2s_handle_t *hi2s,
                                        const void *p_tx_data,
                                        void *p_rx_data,
                                        uint32_t transfer_size);

Related use case: Use case: I2S full duplex Tx/Rx in interrupt mode


HAL I2S DMA pause transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_DMAPause(I2S_HandleTypeDef *hi2s);
hal_status_t HAL_I2S_MASTER_Pause(hal_i2s_handle_t *hi2s);

HAL I2S DMA resume transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_DMAResume(I2S_HandleTypeDef *hi2s);
hal_status_t HAL_I2S_MASTER_Resume(hal_i2s_handle_t *hi2s);

HAL I2S DMA stop transfer

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_DMAStop(I2S_HandleTypeDef *hi2s);
Removed in HAL2.
The same functionality can be achieved using the function HAL_I2S_Abort(hal_i2s_handle_t *hi2s);

HAL I2S disable I/O swap

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_DisableIOSwap(I2S_HandleTypeDef *hi2s);
hal_status_t HAL_I2S_DisableIOSwap(hal_i2s_handle_t *hi2s);

HAL I2S enables I/O swap

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_EnableIOSwap(I2S_HandleTypeDef *hi2s);
hal_status_t HAL_I2S_EnableIOSwap(hal_i2s_handle_t *hi2s);

HAL I2S I/O swap is enabled

HAL1

HAL2

uint32_t HAL_I2S_IsEnabledIOSwap(const I2S_HandleTypeDef *hi2s);
hal_i2s_io_swap_status_t HAL_I2S_IsEnabledIOSwap(hal_i2s_handle_t *hi2s);

HAL I2S receive

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Receive(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size, uint32_t Timeout);
hal_status_t HAL_I2S_Receive(hal_i2s_handle_t *hi2s, void *p_data, uint32_t transfer_size, uint32_t timeout_ms);

HAL I2S receive with DMA

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Receive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size);
hal_status_t HAL_I2S_Receive_DMA(hal_i2s_handle_t *hi2s, void *p_data, uint32_t transfer_size);

HAL I2S receive with interrupt

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Receive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pData, uint16_t Size);
hal_status_t HAL_I2S_Receive_IT(hal_i2s_handle_t *hi2s, void *p_data, uint32_t transfer_size);

HAL I2S transmit in polling mode

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Transmit(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size, uint32_t Timeout);
hal_status_t HAL_I2S_Transmit(hal_i2s_handle_t *hi2s, const void *p_data, uint32_t transfer_size, uint32_t timeout_ms);

HAL I2S transmit using DMA

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Transmit_DMA(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size);
hal_status_t HAL_I2S_Transmit_DMA(hal_i2s_handle_t *hi2s, const void *p_data, uint32_t transfer_size);

Related use case: Use case: I2S transmission in DMA mode


HAL I2S transmit using interrupt

HAL1

HAL2

HAL_StatusTypeDef HAL_I2S_Transmit_IT(I2S_HandleTypeDef *hi2s, const uint16_t *pData, uint16_t Size);
hal_status_t HAL_I2S_Transmit_IT(hal_i2s_handle_t *hi2s, const void *p_data, uint32_t transfer_size);